package com.qf.controller;

import com.qf.pojo.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/stu")

//启用指定的配置类Student，注解内部会将属性配置文件中对应的信息封装到Student对象中
//并且将Student对象添加到Spring容器中
@EnableConfigurationProperties(Student.class)
public class StudentController {

    //获取配置文件中内容 方式一
    @Value("${stu.username}")
    String username;

    //获取配置文件中数组的0号角标的值 方式一
    @Value("${stu.hobbies[0]}")
    String hobbies1;

    //获取配置文件中内容方式二 (通过Environment获取，在项目启动过程中，会将配置文件中所有的配置信息都添加到这个对象中)
    //这种方式也无法将整个数组获取，只能获取数组中的某一个元素
    @Autowired
    Environment env;

    //方式三
    @Autowired
    Student stu;

    @GetMapping("/getVal")
    public String test(){

        System.out.println("m1---" + username + "----" + hobbies1);

        Integer age = env.getProperty("stu.age", Integer.class);
        String hobbies2 = env.getProperty("stu.hobbies2[1]");
        System.out.println("m2---" + age + "----" + hobbies2);


        System.out.println("m3 ----" + stu);

        return "success";
    }
}
